Διάβασε, γράψε, σβήσε

Η python προσφέρει ένα μηχανισμό για να διαβάζετε αρχεία κειμένου και να επεξεργάζεστε τα περιεχόμενά τους. Αυτός ο μηχανισμός είναι η εντολή open(). Η open() αναθέτει σε μια μεταβλητή ένα ειδικό αντικείμενο που λέγεται file object, και σας δίνει τη δυνατότητα να διαχειριστείτε το αρχείο.

f = open("file.txt", "r")

Η δεύτερη παράμετρος (όρισμα) της open, μπορεί να πάρει διάφορες τιμές, αλλά εδώ θα μας απασχολήσουν η “r”, η “w” και η “rw”. Η πρώτη σημαίνει πως ανοίγετε το αρχείο για ανάγνωση (read), η δεύτερη για γράψιμο (write), ενώ η τρίτη και για τα δύο.

Το file object παρέχει μερικές χρήσιμες μεθόδους για ανάγνωση των περιεχομένων του αρχείου και εγγραφή σε αυτό:

filename = raw_input('Enter filename to read: ')
f = open(filename, 'r')

print f.read() 

f.close()
filename = raw_input('Enter filename to write: ')
f = open(filename, 'w')

data = raw_input('Text: ')
f.write(data) 

f.close()
import sys

infile, outfile = open(sys.argv[0]), open(sys.argv[1], 'w')

outfile.write(infile.read())

Παρατηρήστε ότι αφού τελειώσουμε το γράψιμο ή την ανάγνωση ενός αρχείου, είναι καλό να καλούμε τη μέθοδο close() πάνω του.

Η read() που είδαμε παραπάνω διαβάζει όλο το περιεχόμενο του αρχείου (το οποίο μπορούμε να αποθηκεύσουμε σε μια μεταβλητή). Εάν όμως θέλουμε να επεξεργαστούμε το αρχείο, ή να αντλήσουμε πληροφορίες από τα περιεχόμενά του, είναι μάλλον πιο χρήσιμο να πάρουμε μια λίστα με τις γραμμές του. Αυτό κάνει η readlines():

import sys

f = open(sys.argv[1])

i = 1
for line in f.readlines():
    print str(i) + ': ' + line,
    i += 1

f.close()

Θυμηθείτε ότι η for παίρνει μια λίστα, και προσπαθήστε να καταλάβετε τι θα κάνει αυτό το πρόγραμμα. Τρέξτε το για να δείτε εάν είχατε δίκιο, είναι το read_line_by_line.py. Θα πρέπει να του δώσετε και ένα όνομα αρχείου ως όρισμα.

Previous topic

Ξανά και ξανά και ξανά και ξανά και ξανά

Next topic

Μέθοδοι

This Page